package ophiux.wechatpay.sdk.request.medicalPay;

import java.util.HashMap;
import java.util.Map;
import ophiux.wechatpay.sdk.base.OphiuxMedicalPayBaseRequest;
import ophiux.wechatpay.sdk.response.medicalPay.UnifiedOrderMedicalPayResponse;

public class UnifiedOrderMedicalPayRequest extends OphiuxMedicalPayBaseRequest<UnifiedOrderMedicalPayResponse> {

	@Override
	public Map getTextParam() {
		Map<String, String>  map = new HashMap<String, String>();
		map.put("apiType", apiType);
		map.put("orderMoney", orderMoney);
		map.put("outTradeNo", outTradeNo);
		map.put("orderType", orderType);
		map.put("payType", payType);
		map.put("notifyUrl", notifyUrl);
		map.put("returnUrl", returnUrl);
		map.put("medicalContent", medicalContent);
		map.put("idCard", idCard);
		map.put("realName", realName);
		map.put("orderDesc", orderDesc);
		map.put("extend1", extend1);
		map.put("extend2", extend2);
		map.put("extend3", extend3);
		return map;
	}

	@Override
	public Class<UnifiedOrderMedicalPayResponse> getResponseClass() {
		return UnifiedOrderMedicalPayResponse.class;
	}
	
	/**
     * API 类别
     */
    private String apiType = "JSAPI";
    /**
     * 订单金额
     */
    private String orderMoney;

    /**
     * 外部订单号  调用方订单号
     */
    private String outTradeNo;

    /**
     * 订单类别 订单类别：1-挂号；2-预约挂号；3-门诊缴费； 4-门诊预交金；5-住院预交金；6-住院结算
     */
    private String orderType;
    /**
     * 支付类型 1-自费，2-医保（含混合）
     */
    private String payType;
    /**
     * 异步通知地址
     * 用户提供通知接收地址，订单支付成功后，会调用此接口进行通知
     */
    private String notifyUrl;


    /**
     * 同步通知地址   N
     * 支付成功后，将要跳转 的地址
     */
    private String returnUrl;
    /**
     * 医保支付信息结构   含医保时必传，看最底下注释
     */
    private String medicalContent;
    /**
     * 身份证号码
     */
    private String idCard;
    /**
     * 姓名
     */
    private String realName;
    /**
     * 订单描述
     */
    private String orderDesc;
    /**
     * 扩展域 1
     */
    private String extend1;
    private String extend2;
    private String extend3;


	public String getApiType() {
		return apiType;
	}

	public void setApiType(String apiType) {
		this.apiType = apiType;
	}

	public String getOrderMoney() {
		return orderMoney;
	}

	public void setOrderMoney(String orderMoney) {
		this.orderMoney = orderMoney;
	}

	public String getOutTradeNo() {
		return outTradeNo;
	}

	public void setOutTradeNo(String outTradeNo) {
		this.outTradeNo = outTradeNo;
	}

	public String getOrderType() {
		return orderType;
	}

	public void setOrderType(String orderType) {
		this.orderType = orderType;
	}

	public String getPayType() {
		return payType;
	}

	public void setPayType(String payType) {
		this.payType = payType;
	}

	public String getNotifyUrl() {
		return notifyUrl;
	}

	public void setNotifyUrl(String notifyUrl) {
		this.notifyUrl = notifyUrl;
	}

	public String getReturnUrl() {
		return returnUrl;
	}

	public void setReturnUrl(String returnUrl) {
		this.returnUrl = returnUrl;
	}

	public String getMedicalContent() {
		return medicalContent;
	}

	public void setMedicalContent(String medicalContent) {
		this.medicalContent = medicalContent;
	}

	public String getIdCard() {
		return idCard;
	}

	public void setIdCard(String idCard) {
		this.idCard = idCard;
	}

	public String getRealName() {
		return realName;
	}

	public void setRealName(String realName) {
		this.realName = realName;
	}

	public String getOrderDesc() {
		return orderDesc;
	}

	public void setOrderDesc(String orderDesc) {
		this.orderDesc = orderDesc;
	}

	public String getExtend1() {
		return extend1;
	}

	public void setExtend1(String extend1) {
		this.extend1 = extend1;
	}

	public String getExtend2() {
		return extend2;
	}

	public void setExtend2(String extend2) {
		this.extend2 = extend2;
	}

	public String getExtend3() {
		return extend3;
	}

	public void setExtend3(String extend3) {
		this.extend3 = extend3;
	}

}
